import callback from '../function/callback'

/**
 * 查询 obj 在 array 中的位置，array 是有序的，
 * 注意：这里虽然使用的二分查找，但是它找到的是应该插入的位置
 */
function sortedIndex(array, obj, iteratee, context) {
  iteratee = callback(iteratee, context, 1)
  const value = iteratee(value)
  const length = array.length
  let low = 0,
    high = length - 1,
    mid
  while (low < high) {
    mid = Math.floor((low + high) / 2)
    if (value < iteratee(array[mid])) {
      high = mid
    } else {
      low = mid + 1
    }
  }
  return low
}

export default sortedIndex
